Skip to content

deps: upgrade npm to 11.18.0 - #64199

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
npm:npm-v11.18.0-main
Jul 8, 2026
Merged

deps: upgrade npm to 11.18.0#64199
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
npm:npm-v11.18.0-main

Conversation

@npm-cli-bot

Copy link
Copy Markdown
Contributor

11.18.0 (2026-06-29)

Features

Bug Fixes

Documentation

Dependencies

Chores

arborist: 9.9.0

9.9.0 (2026-06-29)

Features

Bug Fixes

config: 10.12.0

10.12.0 (2026-06-29)

Features

Bug Fixes

Documentation

libnpmdiff: 8.1.11

Dependencies

libnpmexec: 10.3.1

10.3.1 (2026-06-29)

Bug Fixes

Dependencies

libnpmfund: 7.0.25

Dependencies

libnpmpack: 9.1.11

Dependencies

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-bot nodejs-github-bot added needs-ci PRs that need a full CI run. npm Issues and PRs related to the npm client dependency or the npm registry. labels Jun 29, 2026
@richardlau richardlau added the request-ci Add this label to start a Jenkins CI on a PR. label Jun 30, 2026
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jun 30, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@richardlau

Copy link
Copy Markdown
Member

This will need a rebase to fix the CI failures.

@MikeMcC399

This comment was marked as outdated.

@manzoorwanijk

Copy link
Copy Markdown

The last lone maintainer of npm CLI is no longer at GitHub, and I don’t see anyone else being assigned yet. So, this may take longer to get rebased.

@reggi

reggi commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

The last lone maintainer of npm CLI is no longer at GitHub, and I don’t see anyone else being assigned yet. So, this may take longer to get rebased.

star-wars-yoda

✌️ I'm Tea I work on npm

@richardlau richardlau added the request-ci Add this label to start a Jenkins CI on a PR. label Jul 7, 2026
@richardlau

Copy link
Copy Markdown
Member

Is it too late to get the rebase done and landed before the Node.js 26.5.0 release?

I've restarted the CI for this PR, but am making no promises about getting this into the 26.5.0 release.

My intention for 26.5.0 was to start release builds tonight before I go to sleep so I can do the release tomorrow during my working hours (the worst case build time (which I don't know if we'll hit) is ~7 hours). We're past my work hours today so if I did try to get the npm release into 26.5.0 I'd have to give up a chunk of my evening to:

  • Check the CI for this PR has passed (restarting for any flakes)
  • Merge this PR
  • Update the release proposal
  • Rerun CI for the release proposal

The good news for Node.js 26 is that we do current releases fairly often, so it should not be too long before the next release.

@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jul 7, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/74641/

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@richardlau richardlau added the commit-queue PRs queued for automated landing through the Commit Queue. label Jul 8, 2026
@nodejs-github-bot nodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Jul 8, 2026
@nodejs-github-bot
nodejs-github-bot merged commit fd35018 into nodejs:main Jul 8, 2026
70 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in fd35018

aduh95 pushed a commit that referenced this pull request Jul 21, 2026
PR-URL: #64199
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
santigimeno pushed a commit to nodesource/nsolid that referenced this pull request Jul 22, 2026
PR-URL: nodejs/node#64199
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Signed-off-by: Santiago Gimeno <santiago.gimeno@gmail.com>
@danez

danez commented Jul 24, 2026

Copy link
Copy Markdown

Can this please be backported to 24.x and included in 24.19.0?
Because of npm/cli#9681. So basically allowScripts in npm < 11.18.0 is pretty broken and does not install bins.

@richardlau richardlau added the dont-land-on-v22.x PRs that should not land on the v22.x-staging branch and should not be released in v22.x. label Jul 24, 2026
@MikeMcC399

MikeMcC399 commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

A critical severity vulnerability CVE-2026-59873 for tar <7.5.19 is being reported in the node Docker images currently bundling npm@11

Node.js npm tar resolved in
24.18.1 11.16.0 7.5.15 npm@11.18.0
26.5.1 11.17.0 7.5.16 npm@11.18.0

This would be resolved when this PR lands in Node.js 24.x and 26.x.

For npm 10.x used in Node.js 22.x see separate issue npm/cli#9801 npm/cli#9824

Updated - now only affects Node.js 24.x:

Node.js npm tar resolved in
24.19.0 11.17.0 7.5.16 npm@11.18.0
26.6.0 11.18.0 7.5.19 already resolved

RafaelGSS pushed a commit that referenced this pull request Jul 29, 2026
PR-URL: #64199
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
@MikeMcC399

MikeMcC399 commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

A set of PRs for npm have been submitted, as listed on npm/cli#9827

The following two PRs are updates to npm 11.19.0:
#64883 - landed in main, backported to Node.js 26.7.0
#64885 - closed. Superseded by #64883

aduh95 pushed a commit that referenced this pull request Aug 6, 2026
PR-URL: #64199
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
holistis added a commit to holistis/muraqib that referenced this pull request Aug 28, 2026
…paths (#4)

* feat: add a code-based auto-merge guard, independent of the prompt text

The "never auto-merge payment/auth/migration/secrets" rule has so far
only existed as text Claude reads in the fix prompt — useful, but a
model can misjudge it. This adds a second, mechanical line of defense:
.github/workflows/auto-merge-guard.yml runs on any PR that has
auto-merge enabled, diffs the actual changed files against a
customizable regex (MURAQIB_SENSITIVE_PATHS repo variable, sensible
default otherwise), and force-disables auto-merge + comments if it
matches — regardless of what the PR author decided.

The pattern-matching logic itself is unit tested
(scripts/sensitive-path-pattern.test.mjs, 3 cases including a documented
false-positive trade-off: a harmless file merely named after a sensitive
topic still gets flagged on purpose, since a few minutes of review costs
less than missing a real one). The webhook-triggered half (does GitHub
actually fire this on a real auto-merge-enabled PR, does gh pr merge
--disable-auto really take effect) can't be verified without a live PR
against this repo — not done as part of this commit, noted here so it
isn't mistaken for having been end-to-end tested.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix: rebuild the auto-merge guard after adversarial review found it did not work

Ran the first version through a dedicated adversarial + edge-case review
before pushing anywhere. Both reviewers independently found it
fundamentally broken, not just rough around the edges:

1. Used `pull_request` instead of `pull_request_target` — meant a PR could
   weaken the guard (empty its pattern, disable the job) in the same diff
   as a sensitive-path change, and get checked against its own
   already-neutered copy. `pull_request_target` always reads the workflow
   from the base branch, which the PR can't alter.
2. The unit tests exercised a JS RegExp hand-duplicated from a separate
   `grep -E` (POSIX ERE) string actually used in the workflow — the two
   dialects can disagree, so green tests didn't guarantee the production
   bash behaved the same way.
3. An invalid custom MURAQIB_SENSITIVE_PATHS pattern failed OPEN (grep
   silently treated it as "no match") instead of blocking.
4. The pattern never actually included "auth" despite every doc claiming
   it covered auth changes.
5. No documentation of the real requirement: this only actually blocks a
   merge if configured as a required status check in branch protection,
   since the job itself runs async and can't stop native auto-merge from
   completing first.

Rebuilt: all matching logic now lives in one place
(scripts/check-sensitive-paths.mjs), imported by both the workflow (via a
plain `node` invocation, no more grep) and its own test suite
(check-sensitive-paths.test.mjs, 7 cases: default-pattern matches
including auth and the workflow file itself, unrelated files pass, empty
diff passes, invalid custom pattern fails closed, valid custom pattern
overrides the default, non-ASCII filenames match correctly, matching is
case-insensitive). Changed files are read via the GitHub API, never by
checking out the PR's own ref. README/SECURITY.md/LESSONS.md updated to
document the required-status-check requirement and the full history of
what was wrong with the first version.

The webhook-triggered half (does pull_request_target actually behave as
documented on a live PR, does the required-status-check race close in
practice) still can't be verified without a real test PR against this
repo — noted explicitly, not claimed as tested.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix: pagination crash + two secondary gaps found in round-2 review

Both reviewers in the second review round independently found and
reproduced the same critical bug against real large PRs (nodejs/node#64199,
293 files; cli/cli#14278, 252 files): `gh api ... --paginate --jq
"[.[].filename]"` crashes on any response spanning more than one page,
because gh applies --jq per-page before merging, producing several
concatenated JSON array literals instead of one valid document. The
uncaught JSON.parse meant the guard crashed before it could evaluate
whether the PR even needed blocking — on precisely the large-refactor PRs
where an accidental sensitive-path touch is most likely.

Fixed by dropping --jq entirely from both --paginate calls (file list and
existing-comments lookup) and moving the parsing into two testable
functions: parsePaginatedArrayOutput (defensively flattens an
array-of-page-arrays, in case anything ever produces that shape again)
and extractCheckablePaths (also pulls previous_filename for renamed
files, closing a smaller round-2 finding: a rename with no content change
would otherwise evade the guard under its old, possibly-sensitive name).

Verified against real production data, not just reasoning: reproduced the
old crash and confirmed the fix against the actual nodejs/node#64199 PR
(293 files) before writing this commit.

Also fixed: secrets?[._-] required "secrets" to be followed immediately
by ".", "_" or "-" — a bare secrets/ directory (k8s/secrets/prod.yaml)
slid through undetected. Widened to secrets?(/|[._-]|$).

6 new test cases (13 total in this file): multi-page parsing, defensive
flatten, malformed-JSON still throws (not silently empty), rename
old-path inclusion, bare secrets/ directory, and one true end-to-end case
combining all of the above against a simulated 151-file PR.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix: require a real path boundary before "secrets", not a bare substring

Round-3 review confirmed the pagination fix holds (re-verified against
the real 293-file PR, 18/18 tests green) and found one remaining gap:
secrets?(/|[._-]|$) fixed the right-hand boundary (a bare secrets/
directory now matches) but never required a boundary on the left, so
"notsecrets.txt" or "topsecretsauce.md" would also trip the guard.

Fails toward caution, not away from it (unnecessary manual review, not a
missed real secret), so this was assessed as low-severity — fixed anyway
since it was already found and the correction is a one-line, fully
verified change: (^|[/._-])secrets?(/|[._-]|$). New test covers both
directions (false positives removed, true positives retained).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dont-land-on-v22.x PRs that should not land on the v22.x-staging branch and should not be released in v22.x. needs-ci PRs that need a full CI run. npm Issues and PRs related to the npm client dependency or the npm registry.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants